// @algorithm @lc id=2123 lang=cpp 
// @title the-number-of-weak-characters-in-the-game


// #define print(...)
// @test([[5,5],[6,3],[3,6]])=0
// @test([[2,2],[3,3]])=1
// @test([[1,5],[10,4],[4,3]])=1
// @test([[1,1],[2,1],[2,2],[1,2]])=1
class Solution {
public:
    int numberOfWeakCharacters(vector<vector<int>>& properties) {
        sort(properties.begin(), properties.end(),
            [](const vector<int>&a, const vector<int> &b)->bool{
                if(a[0] > b[0]) return true;// [0]降序
                if(a[0] == b[0] && a[1] < b[1]) return true; //[0]相同时[1]升序
                return false;
            });
        int pre1 = 0;
        int ans = 0;
        for(auto & p : properties){ // anyPre[0] >= p[0]
            if(pre1 <= p[1]){
                pre1 = p[1];
            }else{ // pre[1] > p[1]
                ans++; // 当 pre[0]==p[0] 时 pre[1]<=p[1], 故 pre[0]>p[0]
            }
            
        }
        return ans;
    }
};